<html>
<head><meta charset="utf-8"><title>multiple return terminators · t-compiler/wg-mir-opt · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/index.html">t-compiler/wg-mir-opt</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html">multiple return terminators</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="203698335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203698335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203698335">(Jul 13 2020 at 10:21)</a>:</h4>
<p>So, there's one that I think is a good starting point implementation wise, but requires some discussion before exposing it to users. Implementing it will help the discussion as we can benchmark it and look at its effects in general. The optimization I'm talking about is <a href="https://github.com/rust-lang/rust/issues/72022">https://github.com/rust-lang/rust/issues/72022</a></p>



<a name="203698411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203698411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203698411">(Jul 13 2020 at 10:22)</a>:</h4>
<p>We can easily set this new optimization to only run at mir-opt-level 3, which is where we keep our controversial or buggy optimizations</p>



<a name="203698428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203698428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203698428">(Jul 13 2020 at 10:22)</a>:</h4>
<p>(there are plans for making the bugginess explicit, but for now, we use mir-opt-level 3 for this)</p>



<a name="203698440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203698440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203698440">(Jul 13 2020 at 10:22)</a>:</h4>
<p><del>hmm... let me fork this discussion into a separate topic</del> done, here we are</p>



<a name="203698759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203698759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203698759">(Jul 13 2020 at 10:27)</a>:</h4>
<p>So, a first link to get you started: <a href="https://rustc-dev-guide.rust-lang.org/getting-started.html">https://rustc-dev-guide.rust-lang.org/getting-started.html</a></p>



<a name="203698765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203698765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203698765">(Jul 13 2020 at 10:27)</a>:</h4>
<p>this is just about general rustc development</p>



<a name="203698870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203698870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203698870">(Jul 13 2020 at 10:29)</a>:</h4>
<p>you don't need to read all of  it, but it helps you get the setup done and once you hit <code>x.py</code> in the guide, I'll give you some diverging instructions</p>



<a name="203699001"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203699001" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Antoine Martin <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203699001">(Jul 13 2020 at 10:31)</a>:</h4>
<p>alright, thanks for the pointers :) will clone rust and follow along</p>



<a name="203699347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203699347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203699347">(Jul 13 2020 at 10:35)</a>:</h4>
<p>What's usually done to work on mir optimizations is:</p>
<ol>
<li>build a rust source file in <code>src/test/mir-opt</code> that shows the code you want to optimize. Keep this simple, so no <code>println!</code> or other formatting infrastructure if not necessary for the optimization</li>
<li>
<p>run <code>./x.py test --stage 1 --bless src/test/mir-opt</code> in order to generate MIR dumps (read the readme in <a href="https://github.com/rust-lang/rust/tree/master/src/test/mir-opt">https://github.com/rust-lang/rust/tree/master/src/test/mir-opt</a> for instructions on how to dump things)<br>
3 commit the current status</p>
</li>
<li>
<p>implement a new optimization in <code>src/librustc_mir/transform</code>. Fastest way: pick a small optimization (e.g. <a href="https://github.com/rust-lang/rust/blob/master/src/librustc_mir/transform/no_landing_pads.rs">https://github.com/rust-lang/rust/blob/master/src/librustc_mir/transform/no_landing_pads.rs</a>) and copy it, add your optimization somewhere in <a href="https://github.com/rust-lang/rust/blob/e59b08e62ea691916d2f063cac5aab4634128022/src/librustc_mir/transform/mod.rs#L385">https://github.com/rust-lang/rust/blob/e59b08e62ea691916d2f063cac5aab4634128022/src/librustc_mir/transform/mod.rs#L385</a>, then start modifying your copied optimization</p>
</li>
<li>Rerun the <code>x.py</code> command to regenerate the mir dumps and look at the diffs to see if they are what you expect</li>
<li>Run <code>./x.py test --stage 1 --bless src/test/ui</code> to see if your optimization broke anything</li>
<li>Commit and open a PR (you can do this at any point, even if things aren't working yet, so you can ask for feedback on the PR. Open a WIP PR in that case)</li>
</ol>



<a name="203700146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203700146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Antoine Martin <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203700146">(Jul 13 2020 at 10:45)</a>:</h4>
<p>so, making sure i'm understanding the optimization</p>
<p>it's something like</p>
<div class="codehilite"><pre><span></span><code>fn test() {
  if cond {
    // do stuff
  } else {
    // do stuff
  }

  return 42;
}
</code></pre></div>


<p>getting optimized to </p>
<div class="codehilite"><pre><span></span><code>fn test() {
  if cond {
    // do stuff
    return 42;
  } else {
    // do stuff
    return 42;
  }
}
</code></pre></div>


<p>(at a lower level of representation, of course)</p>
<p>which avoids the goto needed to skip else block if <code>cond</code> is true, for example</p>



<a name="203700309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203700309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203700309">(Jul 13 2020 at 10:47)</a>:</h4>
<p>Kind of the return value and the actual return are split at the MIR level. The first is an assignment of <code>_0</code>, while the latter is the <code>Return</code> terminator. This issue is only about moving the <code>Return</code> terminators.</p>



<a name="203700564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203700564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203700564">(Jul 13 2020 at 10:50)</a>:</h4>
<div class="codehilite"><pre><span></span><code><span class="k">fn</span> <span class="nf">test</span><span class="p">(</span><span class="n">_1</span>: <span class="kt">bool</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="n">_0</span>: <span class="p">();</span><span class="w"></span>
<span class="n">bb0</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">SwitchInt</span><span class="p">(</span><span class="n">_1</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="p">[</span><span class="kc">true</span>: <span class="nc">bb1</span><span class="p">,</span><span class="w"> </span><span class="n">otherwise</span>: <span class="nc">bb2</span><span class="p">];</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="n">bb1</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="c1">// do stuff</span>
<span class="w">    </span><span class="n">Goto</span><span class="w"> </span><span class="n">bb3</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="n">bb2</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="c1">// do stuff</span>
<span class="w">    </span><span class="n">Goto</span><span class="w"> </span><span class="n">bb3</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="n">bb3</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">Return</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>


<p>-&gt;</p>
<div class="codehilite"><pre><span></span><code><span class="k">fn</span> <span class="nf">test</span><span class="p">(</span><span class="n">_1</span>: <span class="kt">bool</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="n">_0</span>: <span class="p">();</span><span class="w"></span>
<span class="n">bb0</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">SwitchInt</span><span class="p">(</span><span class="n">_1</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="p">[</span><span class="kc">true</span>: <span class="nc">bb1</span><span class="p">,</span><span class="w"> </span><span class="n">otherwise</span>: <span class="nc">bb2</span><span class="p">];</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="n">bb1</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="c1">// do stuff</span>
<span class="w">    </span><span class="n">Return</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="n">bb2</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="c1">// do stuff</span>
<span class="w">    </span><span class="n">Return</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="203700704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203700704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Antoine Martin <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203700704">(Jul 13 2020 at 10:53)</a>:</h4>
<p>makes sense</p>



<a name="203702530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203702530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Antoine Martin <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203702530">(Jul 13 2020 at 11:16)</a>:</h4>
<p>following the setup to build rustc, I'd like to point <code>llvm-config</code> in my <code>config.toml</code> to the system one to avoid recompiling it, but only llvm 10 and 9 are available as packages on my system. will that work with rustc ?</p>



<a name="203702601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/203702601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#203702601">(Jul 13 2020 at 11:17)</a>:</h4>
<p>I think so</p>



<a name="205167984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/205167984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Antoine Martin <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#205167984">(Jul 27 2020 at 21:03)</a>:</h4>
<p>finally getting time to work on this. opened draft PR here: <a href="https://github.com/rust-lang/rust/pull/74839">https://github.com/rust-lang/rust/pull/74839</a></p>
<p>I've added a basic test file, which should optimize once I've implemented what's necessary </p>
<p>I'm not sure how the mir-opt tests work: I've ran <code>./x.py test --stage 1 --bless src/test/mir-opt</code> and after searching for the produced mir dumps, I've found them in <code>build/x86_64-unknown-linux-gnu/test/mir-opt/</code>. But I don't really know which one I should look at, or if there's anything to do with those (yet ?). Should I now try implementing the optimization, then add a <code>// EMIT_MIR rustc.test.MyNewFancyOpt.diff</code> to my test file ?</p>



<a name="205168400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/205168400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Simon Vandel Sillesen <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#205168400">(Jul 27 2020 at 21:07)</a>:</h4>
<p>You can run a nighty compiler or stage 1 with the -Zmir-dump=&lt;function name &gt; on the test file. That should generate a folder with a file with before/after for each pass</p>



<a name="205168508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/205168508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Simon Vandel Sillesen <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#205168508">(Jul 27 2020 at 21:08)</a>:</h4>
<p>And when you have implemented the pass, you can add the emit_mir to the test file. The test suite should then run your pass on the test file and give you a diff</p>



<a name="205169155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/205169155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Antoine Martin <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#205169155">(Jul 27 2020 at 21:14)</a>:</h4>
<p>right, thanks ! I'll get started on the actual code then :)</p>



<a name="205201448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/205201448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#205201448">(Jul 28 2020 at 06:18)</a>:</h4>
<p>you can also add your optimization and make it not do anything. Then adding the diff comment will work, and show no changes.</p>



<a name="205201464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/205201464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#205201464">(Jul 28 2020 at 06:19)</a>:</h4>
<p>after you implement actual logic in your optimization, reblessing the test will then apply the changes</p>



<a name="207031595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/207031595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Antoine Martin <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#207031595">(Aug 15 2020 at 17:45)</a>:</h4>
<p>back from holiday, wrote a basic version of the optimization as I understand it <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span> I imagine the next step is to run an extensive test suite to make sure this didn't break anything ?</p>



<a name="207032777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/207032777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Antoine Martin <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#207032777">(Aug 15 2020 at 18:14)</a>:</h4>
<p>welp, looks like the codegen test suite did catch some problems, I'll look into it</p>



<a name="207038799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/207038799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#207038799">(Aug 15 2020 at 20:51)</a>:</h4>
<p>yep, you got it, ideally if you feel that the feature is correct, you would run the test suites</p>



<a name="207038807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/207038807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#207038807">(Aug 15 2020 at 20:51)</a>:</h4>
<p>and if all of them pass, you'd write tests for the new feature as well</p>



<a name="207038809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/207038809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#207038809">(Aug 15 2020 at 20:51)</a>:</h4>
<p>:3</p>



<a name="211904854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/189540-t-compiler/wg-mir-opt/topic/multiple%20return%20terminators/near/211904854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Antoine Martin <a href="https://rust-lang.github.io/zulip_archive/stream/189540-t-compiler/wg-mir-opt/topic/multiple.20return.20terminators.html#211904854">(Oct 01 2020 at 12:56)</a>:</h4>
<p>thanks for the help everyone, really glad my first contribution is merged <span aria-label="hug" class="emoji emoji-1f917" role="img" title="hug">:hug:</span></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>